Windows 下 Gogs 部署与迁移


目录


简要介绍

已有的商业 Git 平台(如 GiteeGitHub)有诸多限制,如强制开源、人数限制等。在此背景下,本文的目的是搭建一个最简单、最快速和最轻松的 Git 环境。而 Gogs 基于 Go 语言开发,具有运行成本低、开源、稳定的优点而被采用。


环境部署

所需依赖 (附链接):

  • Git
  • NSSM (用于将Gogs注册为服务)

1. Git 安装

下载 Git的可执行安装程序,一路 Next 便可。

2. NSSM 安装

下载并将 NSSM压缩包 解压到 Git 的安装目录下,解压后的文件夹如下图所示:

alt Gogs解压后文件夹

3. 配置环境变量

右击 我的电脑 -> _属性 -> 高级系统设置 -> 环境变量 -> 选中 系统变量 中的 Path 点击 编辑,添加以下记录(假设 Git 装在了 C:\Program Files\Git ): C:\Program Files\Git\nssm\win64;C:\Program Files\Git\bin;

4. Gogs 安装

下载并将 Gogs压缩包 解压到 Git 的安装目录下,解压后的文件夹如下图所示:

alt Gogs解压后文件夹

cmd cdGogs 解压后的文件夹下(或通过在文件夹下 shift + 鼠标右键 ),运行以下命令试运行 Gogs

gogs web

在浏览器中输入http://127.0.0.1:3000 查看 Gogs 是否安装成功。

注意,此时 Gogs 仅看作是一个应用程序,当命令窗口关闭时即不能访问,因此需要后面 NSSM 将其注册为服务,便可长期存在

如成功,则以管理员身份运行 Git\gogs\scripts\windows 下的 install-as-serviceGogs 注册为服务。

此处的 install-as-service 程序为 Gogs 官方所写的通过调用 NSSM 将Gogs发布为服务的脚本,因此这一步需要 NSSM 依赖


Gogs 配置解读

1.文件结构:

  • custom

conf

app ------ Gogs配置文件

  • data ------ 仓库、用户、组织等数据
  • log ------ 日志
  • script ------ 官方所提供的脚本
  • data

------ 仓库、用户、组织等数据

  • log

------ 日志

  • script

------ 官方所提供的脚本

2.app文件中的主要配置项

alt 配置项


迁移方式

在新服务器上安装 Git, 并将整个 Gogs/NSSM 文件夹拷贝到新的服务器上,并参照上文手动添加环境变量,更改配置项。

如路径有变更,如从 D://Program Files//Git 变成 C://Program Files//Git ,需要在Gogs上登陆管理员账号,重新同步 pre_receive , post_receive, update。具体操作:登录后->右上角管理面板->控制面板->管理员操作->重新同步所有仓库的 pre-receive、update 和 post-receive 钩子->执行